home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 1 / The Arsenal Files (Arsenal Computer).ISO / genprog / msjfeb94.exe / CHICTIPS.ZIP / SCRLLAYR.C < prev    next >
Text File  |  1994-02-01  |  5KB  |  118 lines

  1. /************************************************************************
  2.  
  3.                                 DISCLAIMER
  4.  
  5.     Consult your physician before using this program.  Batteries not
  6.     included.  May cause drowsiness.  Must be over 17.  Not available
  7.     in all states.  Not responsible for acts of God.  Prices subject to
  8.     change without notice.  Proof of purchase required.  Read label
  9.     before using.  Some assembly required.  Not responsible for
  10.     typographical errors.  Some restrictions apply.  Subject to local
  11.     regulation.  Warrantee period limited.  Close cover before
  12.     striking.  No resemblance to any person, living or dead, is
  13.     intended.  Subject to availability.  No COD's.  Sales tax not
  14.     included.  Shipping and handling extra.  For external use only. 
  15.     May cause excitability.  Avoid alcoholic beverages while using this
  16.     software.  If symptoms persist, consult your physician.  Keep this
  17.     and all software out of the reach of children.  Parental guidance
  18.     suggested.  The buyer assumes all risks associated with using this
  19.     product.  In case of irritation, flush eyes with cold water and
  20.     consult your physician.  Not insured by the Federal Deposit
  21.     Insurance Corporation.  Use with adequate ventilation.  Avoid
  22.     repeated or prolonged contact with skin.  Contents under pressure;
  23.     do not puncture or incinerate.  Store in original containers. 
  24.     Harmful if swallowed.  Do not fold, bend, staple or mutilate. 
  25.     PLEASE NOTE: Some quantum physics theories suggest that when the
  26.     consumer is not directly observing this product, it may cease to
  27.     exist or will exist only in a vague and undetermined state.
  28.  
  29. ************************************************************************/
  30.  
  31. // SCRLLAYR.C - A Layer Between your app and the scrollbar control
  32. //
  33. // Current version(s) supported by this layer: Windows 2.1, 3.0, 3.1
  34. //
  35. // There is a *very tentative* interface implemeted for Windows 4.0,
  36. // but this could change! Currently, the slider control is called
  37. // a "trackbar", and the TBM_* messages are used to communicate
  38. // with it.
  39. //
  40. // More daring programmers can change this layer to use their
  41. // own interface instead of simply mimicking the 3.1 scrollbar 
  42. // interface.
  43. //
  44. // Notice that along with the four Win 3.1 scrollbar API's,
  45. // a new layer function SCRLLAYR_ScrollBarInitialize has been
  46. // added. This function does nothing in Windows 3.1, but it
  47. // leaves us a nice place to do any init work that may be required
  48. // for Chicago's control. Make sure to call this function,
  49. // even though it does nothing, that way when you move to Chicago,
  50. // you can use the compiler to point out evey place you need to
  51. // add initialization code by changing the parameter list and
  52. // noting all the new compiler errors.
  53. //
  54. // For those concerned with speed issues, most compilers
  55. // have nifty pragmas to change these into macros that seamlessly
  56. // integrate these layers into your code.
  57.  
  58. int SCRLLAYR_SetScrollPos ( HWND hWnd,
  59.                             int  fnBar,
  60.                             int  nPos,
  61.                             BOOL fRepaint
  62.                           )
  63. {
  64. #ifdef WIN31ORLOWER
  65.   return SetScrollPos ( hWnd, fnBar, nPos, fRepaint );
  66. #else
  67.   int  iOldPos = SCRLLAYR_GetScrollPos ( hWnd, fnBar );
  68.   SendMessage ( hWnd, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)nPos );
  69.   return iOldPos;
  70. #endif
  71. }
  72.  
  73. int SCRLLAYR_GetScrollPos ( HWND hWnd,
  74.                              int  fnBar
  75.                            )
  76. {
  77. #ifdef WIN31ORLOWER
  78.   return GetScrollPos ( hWnd, fnBar );
  79. #else
  80.   return SendMessage ( hWnd, TBM_GETPOS, 0, 0 );
  81. #endif
  82. }
  83.  
  84. void SCRLLAYR_SetScrollRange ( HWND  hWnd,
  85.                                int   fnBar,
  86.                                int   nMin,
  87.                                int   nMax,
  88.                                BOOL  fRedraw
  89.                              )
  90. {
  91. #ifdef WIN31ORLOWER
  92.   SetScrollRange ( hWnd, fnBar, nMin, nMax, fRedraw );
  93. #else
  94.   SendMessage ( hWnd, TBM_SETRANGE, (WPARAM)fRedraw, 
  95.                 (LPARAM) MAKELONG ( nMin, nMax )
  96.               );
  97. #endif
  98. }
  99.  
  100. int SCRLLAYR_GetScrollRange ( HWND  hWnd,
  101.                               int   fnBar,
  102.                               LPINT lpnMinPos,
  103.                               LPINT lpnMaxPos
  104.                             )
  105. {
  106. #ifdef WIN31ORLOWER
  107.   return GetScrollRange ( hWnd, fnBar, lpnMinPos, lpnMaxPos );
  108. #else
  109.   *lpnMinPos = SendMessage ( hWnd, TBM_GETRANGEMIN, 0, 0 )
  110.   *lpnMaxPos = SendMessage ( hWnd, TBM_GETRANGEMAX, 0, 0 )
  111. #endif
  112. }
  113.  
  114. void SCRLLAYR_ScrollBarInitialize ( void )
  115. {
  116.   // Does nothing for Windows 3.1, nothing yet for 4.0
  117. }
  118.